package com.hfut.jpoa.service;

import java.util.List;

import com.hfut.jpoa.common.dto.ResultDto;
import com.hfut.jpoa.dto.ProviderDTO;
import com.hfut.jpoa.model.Provider;
import com.hfut.jpoa.service.exception.ProviderException;

public interface ProviderService {

	public Provider findProvider(long id) throws ProviderException;

	/**
	 * 根据字典属性key查询字典信息列表
	 * 
	 * @param key
	 * 
	 * @return List<Provider>
	 * @throws ProviderException
	 */
	public List<Provider> getProvider(String key) throws ProviderException;

	/**
	 * 根据字典名称,字典类型,字典编码,状态分页查询字典信息
	 * 
	 * @param systemConfigDTO
	 * @return ResultDto<Provider>
	 * @throws ProviderException
	 */
	public ResultDto<Provider> queryProviderInfoForPage(
			ProviderDTO systemConfigDTO) throws ProviderException;

	/**
	 * 
	 * 根据条件查询字典信息 <功能详细描述>
	 * 
	 * @param Provider
	 * @return
	 * @throws ProviderException
	 */
	public List<Provider> selectProviderInfo(Provider Provider)
			throws ProviderException;

	/**
	 * 
	 * 新增字典信息 <功能详细描述>
	 * 
	 * @param systemConfig
	 * @throws ProviderException
	 */
	public void insertSystemConfig(Provider systemConfig)
			throws ProviderException;

	/**
	 * 
	 * 编辑字典信息 <功能详细描述>
	 * 
	 * @param systemConfig
	 * @throws ProviderException
	 */
	public void updateSystemConfig(Provider systemConfig)
			throws ProviderException;

	/**
	 * 
	 * 根据字典类型查询重复的记录 <功能详细描述>
	 * 
	 * @return
	 * @throws ProviderException
	 */
	public List<Provider> selectSameSysConfig() throws ProviderException;

	/**
	 * 
	 * 批量修改同类型的索引值 <功能详细描述>
	 * 
	 * @param sameIdTypeList
	 * @throws ProviderException
	 */
	public void batchUpdateIndex(List<String> sameIdTypeList)
			throws ProviderException;

	/**
	 * 分页查询字典表列表
	 * 
	 * @param ProviderDTO
	 * @return
	 */
	public ResultDto<Provider> list(ProviderDTO ProviderDTO)
			throws ProviderException;

	/**
	 * 分页查询字典表列表
	 * 
	 * @param ProviderDTO
	 * @return
	 */
	public ResultDto<Provider> queryCategoryInfoForPage(ProviderDTO categoryDTO)
			throws ProviderException;

	/**
	 * 增加供应商
	 * 
	 * @param record
	 * @return
	 * @throws ProviderException
	 */
	public void saveProvider(Provider record) throws ProviderException;

	/**
	 * 增加供应商
	 * 
	 * @param record
	 * @return
	 * @throws ProviderException
	 */
	public void updateProvider(Provider record) throws ProviderException;

	/**
	 * 根据供应商id获取供应商信息
	 * 
	 * @param record
	 * @return
	 * @throws ProviderException
	 */
	public Provider findProviderInfo(Provider record) throws ProviderException;

}
